package com.xueqiu.lovepetmedicalmanagersystem.service.Impl;

import com.xueqiu.lovepetmedicalmanagersystem.mapper.VetsMapper;
import com.xueqiu.lovepetmedicalmanagersystem.pojo.VetSpecialties;
import com.xueqiu.lovepetmedicalmanagersystem.pojo.Vets;
import com.xueqiu.lovepetmedicalmanagersystem.service.VetsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author xueqiu
 */
@Service
public class VetsServiceImpl implements VetsService{

    @Autowired
    private VetsMapper vetsMapper;

    /**
     * 根据兽医姓名关键词模糊查询多个宠物
     * @param vetName 兽医姓名关键词
     * @return 符合关键词的兽医对象列表；可能找不到为EMPTY
     */
    @Override
    public List<Vets> queryVetsLikeName(String vetName) {
        return vetsMapper.queryVetsLikeName(vetName);
    }

    /**
     * 根据兽医ID查询该兽医的员工专业
     * @param vetId 兽医ID
     * @return 绑定对象列表；含有员工专业ID；可能找不到为EMPTY
     */
    @Override
    public VetSpecialties  queryVetSpecialtiesByVetId(Integer vetId) {
        return vetsMapper.queryVetSpecialtiesByVetId(vetId);
    }


    /**
     * 新增单个兽医数据
     * @param vets 数据源，不包含兽医ID
     * @return 新增条数
     */
    @Override
    public Integer insertVets(Vets vets) {
        return vetsMapper.insertVet(vets);
    }

    /**
     * 新增单个兽医与员工专业绑定数据
     * @param vetId 数据源，兽医ID
     * @param speId 数据源，员工专业ID
     * @return 新增条数
     */
    @Override
    public Integer insertVetSpe(Integer vetId, Integer speId) {
        return vetsMapper.insertVetSpe(vetId,speId);
    }

    /**
     * 根据兽医ID查询单个兽医
     * @param vetId 兽医ID
     * @return 兽医对象；可能找不到为NULL
     */
    @Override
    public Vets queryVetById(Integer vetId) {
        return vetsMapper.queryVetsById(vetId);
    }

    /**
     * 根据兽医ID更新单个数据
     * @param vets 数据源，包含兽医ID
     * @return 更新条数
     */
    @Override
    public Integer updateVets(Vets vets) {
        return vetsMapper.updateVet(vets);
    }

    /**
     * 根据兽医ID和员工专业ID更新单个兽医与员工专业绑定数据
     * @param vetId 数据源，兽医ID
     * @param vetSpeId 数据源，员工专业ID
     * @return 更新条数
     */
    @Override
    public Integer updateVetSpe(Integer vetId, Integer vetSpeId) {
        return vetsMapper.updateVetSpe(vetId,vetSpeId);
    }

    /**
     * 根据兽医ID删除单个兽医
     * @param vetId 兽医ID
     * @return 删除条数
     */
    @Override
    public Integer deleteVetsById(Integer vetId) {
        return vetsMapper.deleteVetById(vetId);
    }

    /**
     * 根据兽医ID删除单个兽医与员工专业绑定数据
     * @param vetId 兽医ID
     * @return 删除条数
     */
    @Override
    public Integer deleteVetsSpeById(Integer vetId) {
        return vetsMapper.deleteVetSpeByVetId(vetId);
    }

    /**
     * 根据兽医姓名查询单个兽医；前提是兽医姓名无重复
     * @param vetName 兽医姓名
     * @return 兽医对象；可能找不到为NULL
     */
    @Override
    public Vets queryVetByName(String vetName) {
        return vetsMapper.queryVetsByName(vetName);
    }

}
